/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.dp1.pucp.Produccion.Controlador;

import com.dp1.pucp.Modelo.Clases.Empleado;
import com.dp1.pucp.Modelo.Clases.Empleadoxmaquinasimulacion;
import com.dp1.pucp.Modelo.Clases.Trabajo;
import com.dp1.pucp.Produccion.Vista.DetalleAsignacionGUI;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

/**
 *
 * @author Rodrigo
 */
public class DetalleAsignacionControlador {
    
    private DetalleAsignacionGUI detalleAsignacionView;
    private ArrayList<Trabajo> arregloTrabajos;
    private int indice;
    private ArrayList<Empleadoxmaquinasimulacion> listaEmpleadoxMaquina;
    private RegResultadosControlador controladorPadre;
    
    public DetalleAsignacionControlador(DetalleAsignacionGUI detalleAsignacionView,ArrayList<Trabajo> arregloTrabajos,int indice,ArrayList<Empleadoxmaquinasimulacion> listaEmpleadoxMaquina,RegResultadosControlador controladorPadre){
        
        this.detalleAsignacionView=detalleAsignacionView;
        this.arregloTrabajos=arregloTrabajos;
        this.indice=indice;
        this.controladorPadre=controladorPadre;
        this.listaEmpleadoxMaquina=listaEmpleadoxMaquina;
        this.detalleAsignacionView.addGuardarListener(new guardarListener());
        this.detalleAsignacionView.addCerrarListener(new cerrarListener());
        
        Empleado emp =arregloTrabajos.get(indice).getEmpleado();
        String nombre= emp.getNombre()+" "+emp.getApPaterno()+" "+emp.getApMaterno();
        this.detalleAsignacionView.setNombre(nombre);
        //String nombreMaquina = arregloTrabajos.get(indice).getMaquina().getTipomaquina().getNombre();
        int id=arregloTrabajos.get(indice).getMaquina().getTipomaquina().getIdtipomaquina();
                switch(id){
                    case 1:
                         this.detalleAsignacionView.setTipoMaquina("Horneado");
                         break;
                    case 2:
                        this.detalleAsignacionView.setTipoMaquina("Decorado"); 
                        break;
                    case 3:
                        this.detalleAsignacionView.setTipoMaquina("Rellenado");
                        break;
                    case 4:
                        this.detalleAsignacionView.setTipoMaquina("Empaque");
                }
        String nombreProducto=nombreProductoSimulacion(emp.getIdempleado(),this.listaEmpleadoxMaquina);
        this.detalleAsignacionView.setTipoProducto(nombreProducto);
        
    }
    
    public String nombreProductoSimulacion(int idEmpleado, ArrayList<Empleadoxmaquinasimulacion> listaEmpleadoxMaquina){
        String nombre=null;
        for (int i=0; i<listaEmpleadoxMaquina.size();i++){
            if (listaEmpleadoxMaquina.get(i).getEmpleado().getIdempleado()==idEmpleado){
                nombre=listaEmpleadoxMaquina.get(i).getTipoproducto().getNombre();
            }
        }
        return nombre;
    }
    
    class guardarListener implements ActionListener {
        
        @Override
        public void actionPerformed(ActionEvent e) {
            arregloTrabajos.get(indice).setUnidadesProducidas( detalleAsignacionView.getProducido());
            arregloTrabajos.get(indice).setUnidadesRotas(detalleAsignacionView.getRoto());
            arregloTrabajos.get(indice).setUnidadesTrabajadas(detalleAsignacionView.getProducido()+detalleAsignacionView.getRoto());     
        }
        
    }
    
    class cerrarListener implements ActionListener {
        
        @Override
        public void actionPerformed(ActionEvent e) {
            detalleAsignacionView.dispose();
            controladorPadre.actualizarTabla();
        }
        
    }
    
}
